home *** CD-ROM | disk | FTP | other *** search
/ Chip 2003 - Homepage / CHIP.BIN / share / webmaste / csehtmlp / csehtmlp.exe / {app} / ParserRules / c++builder.xs < prev    next >
Encoding:
Text File  |  2002-04-22  |  6.7 KB  |  184 lines

  1. //Language: C++ Builder
  2. //Copyright (c) 1992-2002 Altium Limited            
  3. //All rights reserved.                              
  4. //http://www.dream-com.com                          
  5. //contact@dream-com.com                             
  6.  
  7. // states
  8. State=snormal, CaseSensitive
  9. State=sstring1
  10. State=sstring2
  11. State=sstring3
  12. State=scomment1
  13. State=scomment2
  14. State=sdirective
  15. // tokens
  16. Token=tnone
  17. Token=tstring
  18. Token=tcomment
  19. Token=tident
  20. Token=tinteger
  21. Token=tfloat
  22. Token=tresword
  23. Token=tassembler
  24. Token=turl
  25. Token=twhitespace
  26. Token=tdirective
  27. //delims
  28. Delimiters=;.,:'"{}[]()?!@#$%^&*-+=|\/
  29.  
  30. // reswords
  31. snormal '__asm'         snormal tresword
  32. snormal '__automated'   snormal tresword
  33. snormal '__cdecl'       snormal tresword
  34. snormal '__classid'     snormal tresword
  35. snormal '__closure'     snormal tresword
  36. snormal '__declspec'    snormal tresword
  37. snormal '__dispid'      snormal tresword
  38. snormal '__except'      snormal tresword
  39. snormal '__export'      snormal tresword
  40. snormal '__fastcall'    snormal tresword
  41. snormal '__finally'     snormal tresword
  42. snormal '__import'      snormal tresword
  43. snormal '__int16'       snormal tresword
  44. snormal '__int32'       snormal tresword
  45. snormal '__int64'       snormal tresword
  46. snormal '__int8'        snormal tresword
  47. snormal '__pascal'      snormal tresword
  48. snormal '__property'    snormal tresword
  49. snormal '__published'   snormal tresword
  50. snormal '__rtti'        snormal tresword
  51. snormal '__stdcall'     snormal tresword
  52. snormal '__thread'      snormal tresword
  53. snormal '__try'         snormal tresword
  54. snormal '_asm'          snormal tresword
  55. snormal '_cdecl'        snormal tresword
  56. snormal '_export'       snormal tresword
  57. snormal '_fastcall'     snormal tresword
  58. snormal '_import'       snormal tresword
  59. snormal '_pascal'       snormal tresword
  60. snormal '_stdcall'      snormal tresword
  61. snormal 'asm'           snormal tresword
  62. snormal 'auto'          snormal tresword
  63. snormal 'bool'          snormal tresword
  64. snormal 'break'         snormal tresword
  65. snormal 'case'          snormal tresword
  66. snormal 'catch'         snormal tresword
  67. snormal 'cdecl'         snormal tresword
  68. snormal 'char'          snormal tresword
  69. snormal 'class'         snormal tresword
  70. snormal 'const'         snormal tresword
  71. snormal 'const_cast'    snormal tresword
  72. snormal 'continue'      snormal tresword
  73. snormal 'default'       snormal tresword
  74. snormal 'delete'        snormal tresword
  75. snormal 'do'            snormal tresword
  76. snormal 'double'        snormal tresword
  77. snormal 'dynamic_cast'  snormal tresword
  78. snormal 'else'          snormal tresword
  79. snormal 'enum'          snormal tresword
  80. snormal 'explicit'      snormal tresword
  81. snormal 'extern'        snormal tresword
  82. snormal 'false'         snormal tresword
  83. snormal 'float'         snormal tresword
  84. snormal 'for'           snormal tresword
  85. snormal 'friend'        snormal tresword
  86. snormal 'goto'          snormal tresword
  87. snormal 'if'            snormal tresword
  88. snormal 'inline'        snormal tresword
  89. snormal 'int'           snormal tresword
  90. snormal 'long'          snormal tresword
  91. snormal 'mutable'       snormal tresword
  92. snormal 'namespace'     snormal tresword
  93. snormal 'new'           snormal tresword
  94. snormal 'operator'      snormal tresword
  95. snormal 'pascal'        snormal tresword
  96. snormal 'private'       snormal tresword
  97. snormal 'protected'     snormal tresword
  98. snormal 'public'        snormal tresword
  99. snormal 'register'      snormal tresword
  100. snormal 'reinterpret_cast' snormal tresword
  101. snormal 'return'        snormal tresword
  102. snormal 'short'         snormal tresword
  103. snormal 'signed'        snormal tresword
  104. snormal 'sizeof'        snormal tresword
  105. snormal 'static'        snormal tresword
  106. snormal 'static_cast'   snormal tresword
  107. snormal 'struct'        snormal tresword
  108. snormal 'switch'        snormal tresword
  109. snormal 'template'      snormal tresword
  110. snormal 'this'          snormal tresword
  111. snormal 'throw'         snormal tresword
  112. snormal 'true'          snormal tresword
  113. snormal 'try'           snormal tresword
  114. snormal 'typedef'       snormal tresword
  115. snormal 'typeid'        snormal tresword
  116. snormal 'typename'      snormal tresword
  117. snormal 'union'         snormal tresword
  118. snormal 'unsigned'      snormal tresword
  119. snormal 'using'         snormal tresword
  120. snormal 'virtual'       snormal tresword
  121. snormal 'void'          snormal tresword
  122. snormal 'volatile'      snormal tresword
  123. snormal 'wchar_t'       snormal tresword
  124. snormal 'while'         snormal tresword
  125.  
  126. // numbers
  127. snormal [0-9][0-9]*                            snormal  tinteger
  128. snormal 0X[0-9A-F]+                            snormal  tinteger
  129. snormal 0x[0-9A-F]+                            snormal  tinteger
  130. snormal [1-9][0-9]*\.[0-9]*                    snormal  tfloat
  131. snormal [1-9][0-9]*{\.[0-9]+}|e{[\+\-]}|[0-9]+ snormal  tfloat
  132.  
  133. //idents
  134. snormal   [a-z_A-Z][a-z_A-Z0-9]*  snormal   tident
  135.  
  136. //white space
  137. snormal #32*                      snormal   twhitespace
  138.  
  139. //comments
  140. snormal   //                      scomment1 tcomment
  141. scomment1 [#1-#255]*              snormal   tcomment
  142. scomment1 $                       snormal   tcomment
  143.  
  144. snormal   /\*                     scomment2 tcomment
  145. scomment2 [^\*]*                  scomment2 tcomment
  146. scomment2 \*[^/]                  scomment2 tcomment
  147. scomment2  [\*]*/                 snormal   tcomment
  148.  
  149.  
  150. //strings
  151. snormal   \'                      sstring1   tstring
  152. sstring1   [^\']*                 sstring1   tstring
  153. sstring1   \'                     snormal    tstring
  154. sstring1   \'\'                   sstring1   tstring
  155. sstring1   \\                     sstring1   tstring
  156. sstring1   \\\'                   sstring1   tstring
  157. sstring1   $                      snormal    tstring
  158.  
  159. //strings
  160. snormal    \"                     sstring2   tstring
  161. sstring2   [^\"]*                 sstring2   tstring
  162. sstring2   \"                     snormal    tstring
  163. sstring2   \"\"                   sstring2   tstring
  164. sstring2   \\                     sstring2   tstring
  165. sstring2   \\\"                   sstring2   tstring
  166. sstring2   $                      snormal    tstring
  167.  
  168. //strings
  169. snormal    {L\"}                  sstring3   tstring
  170. sstring3   [^\"]*                 sstring3   tstring
  171. sstring3   \"                     snormal    tstring
  172. sstring3   \"\"                   sstring3   tstring
  173. sstring3   $                      snormal    tstring
  174.  
  175. //directives
  176.  
  177. snormal  \#                       sdirective tdirective
  178. sdirective [#1-#255]*             snormal tdirective
  179. sdirective $                      snormal tdirective
  180.  
  181. // urls
  182. snormal   www\.[a-z_A-Z0-9@\-.]*   snormal turl
  183. snormal   mailto:[a-z_A-Z0-9@\-.]*   snormal turl
  184.